CreateTemplateForm = function(config) {

    // Privatne varijable
    var privateVariable = '';

    this.valueData = {
            templateId : '',
            templateName : 'test',
            groupId : ''
    };

    this.templateRadio = {
        xtype: 'radiogroup',
        fieldLabel: 'Izaberi predložak',
        columns: 1,
        name: 'templateId',
        items: [
            {boxLabel: 'Item 1', name: 'templateId', inputValue: '' }
        ]
    };

    this.startButton = {
        text: 'Pošalji',
        handler: function() {
            this.getForm().submit( {
                url : 'mvc/newProcess',
                method : 'POST',
                scope : this,
                success : function(response, options) {
                    var jsonData = Ext.util.JSON.decode(options.response.responseText);
                    window.open(jsonData.downloadUrl);
                },
                failure : function(){alert("Greška!")},
                waitTitle : 'Molim pričekajte',
                waitMsg : 'Spremam!',
                submitEmptyText : false,
                clientValidation : false
            });
        },
        scope : this
    };

    Ext.apply(this, config);

    // Defaultna konfiguracija
    Ext.apply(this, {
        id: 'CreateTemplateFormId',
        //frame:true,
        baseCls: 'x-plain',
        border:true,
        items : [
                 this.templateRadio,
                 {
                     xtype: 'textfield',
                     fieldLabel: 'Naziv',
                     name : 'templateName'
                 },
                 {
                     xtype : 'hidden',
                     name : 'groupId'
                 }],
        buttons: [this.startButton]
    });

    // Poziv konstruktora nadklase
    CreateTemplateForm.superclass.constructor.call(this);

    this.on('beforerender', function(formPanel) {
        formPanel.getForm().setValues(formPanel.valueData);
    }, this);

    // Ovdje idu public metode
//    this.publicMetoda = function(){};

    // Ovdje dodati subscribe na evente definirane u komponenti. Objekt mora biti kreiran pa ovo mora doći poslje poziva konstruktora.
//    this.on('componentEventName', function(param) {
//
//    }, this);

    // Ovdje dodati subscribe na custom evente.
//    this.subscribe('customEventName', function(params) {
//
//    }, this);

};

Ext.extend(CreateTemplateForm, Ext.form.FormPanel, {

    // Ovdje se može overide-ati metode nadklase
//    onRender : function() {
//
//    },

    // Mogu se dodati i custom metode
//    customMethod : function() {
//    }

});

Ext.reg('createTemplateForm', CreateTemplateForm);